// powerup.c 混元一气功加力

#include <ansi.h>

inherit F_CLEAN_UP;

void remove_effect(object me, int amount);

int exert(object me, object target)
{
   	int skill;

   	if (target != me)
   		return notify_fail("你只能用混元一气功来提升自己的战斗力。\n");

   	if ((int)me->query("neili") < 150)
   		return notify_fail("你的内力不够。\n");

   	if ((int)me->query_temp("powerup"))
   		return notify_fail("你已经在运功中了。\n");

   	skill = me->query_skill("hunyuan-yiqi", 1);
	me->add("neili", -100);
   	me->receive_damage("qi", 0);

   	message_combatd(HIR "$N" HIR "爆喝一声，浑身的骨骼哗啦哗啦一阵"
			"响，脸色变得赤红慑人。\n" NOR, me);

   	me->add_temp("apply/attack", skill / 3);
   	me->add_temp("apply/defense", skill / 3);
   	me->set_temp("powerup", 1);

   	me->start_call_out((: call_other, __FILE__, "remove_effect", me,
			      skill / 3 :), skill);
   	if (me->is_fighting()) me->start_busy(1 + random(3));
   	return 1;
}

void remove_effect(object me, int amount)
{
	if (me->query_temp("powerup"))
	{
   		me->add_temp("apply/attack", - amount);
   		me->add_temp("apply/defense", - amount);
   		me->delete_temp("powerup");
   		tell_object(me, "你的混元一气功运行完毕，将内力收回丹田。\n");
	}
}
